package com.func.domain.strategy.service.armory;

/**
 * @ClassName IStrategyArmory
 * @Description 策略装配工厂, 负责初始化策略计算, 单一职责思想, 这个接口用来做装配工作
 * @Author: func
 * @Date 2025/2/19 1:17
 * @Version 1.0
 */

public interface IStrategyArmory {

    /**
     * 装配策略, 这里包括了创建概率搜索表和配置权重两种配置行为
     * @param strategyId 策略Id
     * @return 是否配置成功
     */
    boolean assembleLotteryStrategy(Long strategyId);

    /**
     * 奖品剩余库存缓存装配
     */
    void cacheStrategyAwardCount(Long strategyId, Integer awardId, Integer awardCount);

    boolean assembleLotteryStrategyByActivityId(Long activityId);
}
